#ifndef __BMS_CONFIG_H__
#define __BMS_CONFIG_H__

// 最多支持多少节电芯
// BQ76920:3~5
// BQ76930:6~10
// BQ76940:9~15
#define BMS_CELL_MAX	5


// 最多支持几路温度
// BQ76920:1
// BQ76930:2
#define BMS_TEMP_MAX	1

// 温度测量范围,具体值需要根据热敏电阻和BQ芯片测量范围决定
#define BMS_TEMP_MEASURE_MAX	125
#define	BMS_TEMP_MEASURE_MIN	-55

// 默认电池额定容量值(A/H)
// 这个值没有实际用容量测仪校准过,是卖家口头说的
#define BMS_BATTERY_CAPACITY	2.0

// How long you stay still in standby mode to enter sleep mode
#define BMS_ENTRY_SLEEP_TIME	60

/***************************** 电池保护相关参数 ***********************************/
// 三元锂电池(Ternary lithium battery)默认参数
#define TLB_OV_PROTECT			  4.20	// 单体过压保护电压
#define TLB_OV_RELIEVE			  4.18	// 单体过压恢复电压
#define TLB_UV_PROTECT			  3.10	// 单体欠压保护电压
#define TLB_UV_RELIEVE			  3.15	// 单体欠压恢复电压
#define TLB_SHUTDOWN_VOLTAGE	3.08	// 自动关机电压
#define TLB_BALANCE_VOLTAGE		3.30	// 均衡起始电压

#define INIT_OV_PROTECT			TLB_OV_PROTECT			  // 单体过压保护电压(V)(注意BQ769X0 OV范围：3.15~4.70V)
#define INIT_OV_RELIEVE			TLB_OV_RELIEVE			  // 单体过压恢复电压(V)
#define INIT_UV_PROTECT			TLB_UV_PROTECT			  // 单体欠压保护电压(V)(注意BQ769X0 UV范围：1.58~3.10V)
#define INIT_UV_RELIEVE			TLB_UV_RELIEVE			  // 单体欠压恢复电压(V)
                                   
#define INIT_SHUTDOWN_VOLTAGE	TLB_SHUTDOWN_VOLTAGE// 自动关机电压(V),暂未使用,预留
#define INIT_BALANCE_VOLTAGE	TLB_BALANCE_VOLTAGE	// 均衡起始电压(V)

#define	INIT_OCC_MAX				2.0 		              // 最大充电电流(A)
#define	INIT_OCD_MAX				2.2		                // 最大放电电流(A),由BQ芯片控制,此参数改动不起作用,应该在drv_softi2c_bq769x0.c修改放电过流

#define INIT_OV_DELAY		    BMS_OV_DELAY_2s		    // 充电过压保护延时时间	OV:Over	Voltage
#define INIT_UV_DELAY 		  BMS_UV_DELAY_4s		    // 放电欠压保护延时时间 UV:Under Voltage
                                                  
#define INIT_OCD_DELAY		  BMS_OCD_DELAY_320ms   // 放电过流延时时间(S) OCD:Over Current Discharge
#define INIT_OCD_RELIEVE	  60					          // 放电过流解除时间(S)
                                                  
#define INIT_SCD_DELAY		  BMS_SCD_DELAY_100us	  // 放电短路延时时间(us) SCD:Short Circuit Discharge
#define INIT_SCD_RELIEVE	  60					          // 放电短路解除时间(S)

#define INIT_OCC_DELAY		  1		                  // 充电过流延时时间(S) OCC:Over Current Charge
#define INIT_OCC_RELIEVE	  60		                // 充电过流解除时间(S)

#define INIT_OTC_PROTECT	70		                  // 充电过温保护(℃) OTC:Over Temperature Charge
#define INIT_OTC_RELIEVE	60		                  // 充电过温解除(℃)

#define INIT_OTD_PROTECT	70		                  // 放电过温保护(℃) OTD:Over Temperature Discharge
#define INIT_OTD_RELIEVE	60		                  // 放电过温解除(℃)

#define INIT_LTC_PROTECT	-20		                  // 充电低温保护(℃) LTC:Low Temperature Charge
#define INIT_LTC_RELIEVE	-10		                  // 充电低温解除(℃)
                                                  
#define INIT_LTD_PROTECT	-20		                  // 放电低温保护(℃) LTD:Low Temperature Discharge
#define INIT_LTD_RELIEVE	-10		                  // 放电低温解除(℃)	


#define BALANCE_VOLT_RISE_DELAY 5000              // The delay in balancing voltage recovery

#endif  /* __BMS_CONFIG_H__ */
